#ifndef SYSTEMINFOPLUGININTERFACE_H
#define SYSTEMINFOPLUGININTERFACE_H

#define PluginInterfaceIID "com.ukui-monitor-overlay.SystemInfoPluginInterface/1.0"

#include <QObject>
#include <QString>
#include <QVariant>

/**
 * @brief 系统信息接口
 */
class SystemInfoPluginInterface : public QObject
{
    Q_OBJECT
public:
    virtual ~SystemInfoPluginInterface() {}
    /**
     * @brief 获取插件名称
     * @return
     */
    virtual QString name() const = 0;

    /**
     * @brief 插件显示名称，用于显示在监视器面板上
     * @return
     */
    virtual QString displayName() const = 0;

    /**
     * @brief 获取插件描述
     * @return
     */
    virtual QString description() const = 0;

    /**
     * @brief 获取插件作者（可选）
     * @return
     */
    virtual QString author() const { return QString(); }

    /**
     * @brief 获取信息
     * @return
     */
    virtual QVariant getMonitoringValue() const = 0;
};

Q_DECLARE_INTERFACE(SystemInfoPluginInterface, PluginInterfaceIID)

#endif // SYSTEMINFOPLUGININTERFACE_H
